---
title: Univer Sheets API
---

Univer Sheets は プロフェッショナル グレード の スプレッドシート 機能を提供し、Microsoft Excel と可能な限り一貫性のある概念で設計されています。

## ワークブック

ワークブックは複数のワークシートを含み、Excel ファイルとして考えることができます。

`unitId` はワークブックの一意識別子として使用できます。

### ワークブックの作成

[`univerAPI.createWorkbook(data, options)`](https://reference.univer.ai/en-US/classes/FUniver#createworkbook) メソッドは `FWorkbook` オブジェクトを作成して返します。

[`IWorkbookData`](/guides/sheets/model/workbook-data) はワークブックの設定情報を含むオブジェクトです。

```typescript
const fWorkbook = univerAPI.createWorkbook({ id: 'Sheet1', name: 'Sheet1' })
console.log(fWorkbook)
```

オプションを設定することで、ワークブックをアクティブなワークブックとして設定しないようにできます：

```typescript
const fWorkbook = univerAPI.createWorkbook({ id: 'Sheet1', name: 'Sheet1' }, { makeCurrent: false })
console.log(fWorkbook)

// 3 秒後にこのワークブックに切り替えたい場合
setTimeout(() => {
  univerAPI.setCurrent(fWorkbook.getId())
}, 3000)
```

### ワークブックデータの取得 [#get-workbook-data]

```typescript
const fWorkbook = univerAPI.getActiveWorkbook()
const snapshot = fWorkbook.save()
console.log(snapshot)
```

### ワークブックのアンロード

`Workbook` が不要になった場合、API インスタンスの `disposeUnit` メソッドを呼び出してアンロードできます。

```typescript
const fWorkbook = univerAPI.getActiveWorkbook()
const unitId = fWorkbook?.getId()
if (unitId) {
  univerAPI.disposeUnit(unitId)
}
```

<Callout type="warning">
  Univer インスタンスをホストしているページ全体が破棄されるか、ルートがアンロードされる場合は、`univerAPI.disposeUnit` ではなく、`univer.dispose()` メソッドを呼び出してクリーンアップを行ってください。
  また、`univer` と `univerAPI` は異なるインスタンスであることに注意してください。これらのインスタンスの取得方法については、[インストールと基本的な使用法](/guides/sheets/getting-started/installation)を参照してください。
</Callout>

### ワークブック ID の取得

```typescript
const fWorkbook = univerAPI.getActiveWorkbook()
fWorkbook?.getId()
```

## ワークシート

ワークシートはテーブルデータを格納し、ワークブックに属します。

ワークブックは複数のワークシートを含むことができ、同じワークブック内のワークシートの名前は重複できません。

`subUnitId` はワークブック内のシートを一意に識別するために使用できます。

### ワークシートの取得

シート内のすべてのシートを取得

```typescript
const fWorkbook = univerAPI.getActiveWorkbook()
const sheets = fWorkbook.getSheets()
```

アクティブなワークシートを取得

```typescript
const fWorkbook = univerAPI.getActiveWorkbook()
const fWorksheet = fWorkbook.getActiveSheet()
```

### ワークシートデータの取得

```typescript
const fWorkbook = univerAPI.getActiveWorkbook()
const fWorksheet = fWorkbook.getActiveSheet()
const sheetSnapshot = fWorksheet.getSheet().getSnapshot()
```

### ワークシートの作成 [#create-worksheet]

以下の例は [`FWorkbook.create`](https://reference.univer.ai/en-US/classes/FWorkbook#create) メソッドを使用してワークシートを作成する方法を示しています。

```typescript
const fWorkbook = univerAPI.getActiveWorkbook()

// 10 行 10 列の 'Sheet2' という名前のワークシートを作成
const newSheet = fWorkbook.create('Sheet2', 10, 10)
```

### ワークシートの削除

ワークシートインスタンスまたはワークシート ID を渡してワークシートを削除

```typescript
// 2 番目のワークシートを削除
const fWorkbook = univerAPI.getActiveWorkbook()
const sheet = fWorkbook.getSheets()[1]
fWorkbook.deleteSheet(sheet)

// 以下のコードは ID で指定されたワークシートを削除します
// fWorkbook.deleteSheet(sheet.getSheetId());
```

### ワークシートのアクティブ化

ワークシートインスタンスまたはワークシート ID を渡してワークシートをアクティブ化するか、`FWorksheet.activate()` メソッドを使用します。

```typescript
// 2 番目のワークシートをアクティブ化
const fWorkbook = univerAPI.getActiveWorkbook()
const sheet = fWorkbook.getSheets()[1]
fWorkbook.setActiveSheet(sheet)

// ID で指定されたワークシートをアクティブ化
// fWorkbook.setActiveSheet(sheet.getSheetId());

// FWorksheet.activate() メソッドを使用してワークシートをアクティブ化
// sheet.activate();
```

### ワークシート ID の取得

```typescript
const fWorkbook = univerAPI.getActiveWorkbook()
const fWorksheet = fWorkbook.getActiveSheet()
fWorksheet?.getSheetId()
```

### ワークシートの更新

```typescript
const fWorkbook = univerAPI.getActiveWorkbook()
const fWorksheet = fWorkbook.getActiveSheet()
fWorksheet.refreshCanvas()
```

### ワークシートズーム

```typescript
const fWorkbook = univerAPI.getActiveWorkbook()
const fWorksheet = fWorkbook.getActiveSheet()

// ズーム比率を 200% に設定
fWorksheet.zoom(2)
const zoomRatio = fWorksheet.getZoom()
```

### セルへのスクロール

```typescript
const fWorkbook = univerAPI.getActiveWorkbook()
const fWorksheet = fWorkbook.getActiveSheet()

// セル D10 にスクロール
const fRange = fWorksheet.getRange('D10')
const row = fRange.getRow()
const column = fRange.getColumn()
fWorksheet.scrollToCell(row, column)

// スクロール状態を取得
const scrollState = fWorksheet.getScrollState()
const { offsetX, offsetY, sheetViewStartColumn, sheetViewStartRow } = scrollState
console.log(scrollState) // sheetViewStartRow: 9, sheetViewStartColumn: 3, offsetX: 0, offsetY: 0
```

## コア機能

### 権限

参考：[権限](/guides/sheets/features/core/permission)

### 数式

参考：[数式](/guides/sheets/features/core/formula)

### 行と列

参考：[行と列](/guides/sheets/features/core/row-col)

### 範囲

参考：[範囲](/guides/sheets/features/core/range-selection#range)

### 選択

参考：[選択](/guides/sheets/features/core/range-selection#selection)

### セル

参考：[セル](/guides/sheets/features/core/range-selection#cell)

### 固定

参考：[固定](/guides/sheets/features/core/freeze)

### カスタムコンポーネントの Univer への統合

参考：[カスタムコンポーネントの Univer への統合](/en-US/guides/sheets/ui/components)

## リファレンス

詳細については、以下の API ドキュメントを参照してください：

- [FWorkbook](https://reference.univer.ai/en-US/classes/FWorkbook)
- [FWorksheet](https://reference.univer.ai/en-US/classes/FWorksheet)
